]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
ci: Use ci-templates for building image
authorJonas Ådahl <jadahl@gmail.com>
Fri, 6 Nov 2020 17:59:19 +0000 (18:59 +0100)
committerMarge Bot <marge-bot@gnome.org>
Tue, 17 Nov 2020 19:07:42 +0000 (19:07 +0000)
This rebuilds the automaticaly whenever the image tag changes. Whenever
something in the image needs to change, alter the installation script
and change the tag to the current date.

This removes the -s (strict) argument from js68, as it doesn't exist in
js78.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1492>

.gitlab-ci.yml
.gitlab-ci/Dockerfile [deleted file]
.gitlab-ci/install-meson-project.sh [new file with mode: 0755]

index 78240e3920d892b13b48a4d4b27be8a1dc434ca4..7df73bbb0cc3a68fafe499abe7849337e3dd9bb3 100644 (file)
@@ -1,6 +1,9 @@
-include: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml'
+include:
+    - remote: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml'
+    - remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/5888c7388134cbe4661600222fe9befb10441f6e/templates/fedora.yml'
 
 stages:
+ - prep
  - review
  - build
  - test
@@ -18,6 +21,41 @@ variables:
         - tags
         - merge_requests
 
+.gnome-shell.fedora:33:
+    variables:
+        FDO_DISTRIBUTION_VERSION: 33
+        FDO_DISTRIBUTION_TAG: '2020-11-17.0'
+        FDO_UPSTREAM_REPO: GNOME/gnome-shell
+        FDO_DISTRIBUTION_EXEC: |
+            # For syntax checks using js78
+            dnf install -y findutils mozjs78-devel &&
+
+            # For static analysis with eslint
+            dnf install -y nodejs &&
+            npm install -g eslint &&
+
+            dnf group install -y 'Development Tools' \
+                                 'C Development Tools and Libraries' &&
+            dnf install -y meson &&
+            dnf install -y 'pkgconfig(gio-2.0)' 'pkgconfig(gio-unix-2.0)' \
+                           'pkgconfig(gnome-autoar-0)' 'pkgconfig(json-glib-1.0)' &&
+
+            ./.gitlab-ci/install-meson-project.sh \
+                -Dman=false \
+                https://gitlab.gnome.org/GNOME/gnome-shell.git \
+                3.38.0 \
+                subprojects/extensions-tool/ \
+                ./generate-translations.sh &&
+
+            dnf clean all
+
+build-fedora-container:
+    extends:
+        - .fdo.container-build@fedora@x86_64
+        - .gnome-shell.fedora:33
+    stage: prep
+    <<: *only_default
+
 check_commit_log:
     image: registry.gitlab.gnome.org/gnome/mutter/master:v4
     stage: review
@@ -34,10 +72,12 @@ check_commit_log:
             junit: commit-message-junit-report.xml
 
 js_check:
-    image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2
+    extends:
+        - .fdo.distribution-image@fedora
+        - .gnome-shell.fedora:33
     stage: review
     script:
-        - find js -name '*.js' -exec js68 -c -s '{}' ';' 2>&1 | tee $JS_LOG
+        - find js -name '*.js' -exec js78 -c '{}' ';' 2>&1 | tee $JS_LOG
         - (! grep -q . $JS_LOG)
     <<: *only_default
     artifacts:
@@ -46,7 +86,9 @@ js_check:
         when: on_failure
 
 eslint:
-    image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2
+    extends:
+        - .fdo.distribution-image@fedora
+        - .gnome-shell.fedora:33
     stage: review
     script:
         - export NODE_PATH=$(npm root -g)
@@ -73,14 +115,18 @@ eslint_mr:
         when: always
 
 potfile_check:
-    image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2
+    extends:
+        - .fdo.distribution-image@fedora
+        - .gnome-shell.fedora:33
     stage: review
     script:
         - ./.gitlab-ci/check-potfiles.sh
     <<: *only_default
 
 no_template_check:
-    image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2
+    extends:
+        - .fdo.distribution-image@fedora
+        - .gnome-shell.fedora:33
     stage: review
     script:
         - ./.gitlab-ci/check-template-strings.sh
diff --git a/.gitlab-ci/Dockerfile b/.gitlab-ci/Dockerfile
deleted file mode 100644 (file)
index fd0eb2a..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-# Rebuild and push with
-#
-#     cd .gitlab-ci/
-#     podman build --format docker --no-cache -t registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2 .
-#     podman push registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2
-#
-
-FROM registry.fedoraproject.org/fedora:32
-
-RUN dnf -y update && dnf -y upgrade && \
-    dnf install -y 'dnf-command(copr)' git && \
-
-    # For syntax checks with `find . -name '*.js' -exec js68 -c -s '{}' ';'`
-    dnf install -y findutils mozjs68-devel && \
-
-    # For static analysis with eslint
-    dnf install -y nodejs && \
-    npm install -g eslint && \
-
-    # Shameless plug for my own tooling; useful for generating zip
-    dnf copr enable -y fmuellner/gnome-shell-ci && \
-    dnf install -y gnome-extensions-tool meson && \
-
-    dnf clean all
diff --git a/.gitlab-ci/install-meson-project.sh b/.gitlab-ci/install-meson-project.sh
new file mode 100755 (executable)
index 0000000..feea611
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+set -e
+
+if [[ $# -lt 4 ]]; then
+  echo Usage: $0 [options] [repo-url] [commit] [subdir]
+  echo  Options:
+  echo    -Dkey=val
+  exit 1
+fi
+
+MESON_OPTIONS=()
+
+while [[ $1 =~ ^-D ]]; do
+  MESON_OPTIONS+=( "$1" )
+  shift
+done
+
+REPO_URL="$1"
+COMMIT="$2"
+SUBDIR="$3"
+PREPARE="$4"
+
+REPO_DIR="$(basename ${REPO_URL%.git})"
+
+git clone --depth 1 "$REPO_URL" -b "$COMMIT"
+pushd "$REPO_DIR"
+pushd "$SUBDIR"
+sh -c "$PREPARE"
+meson --prefix=/usr _build "${MESON_OPTIONS[@]}"
+ninja -C _build install
+popd
+popd
+rm -rf "$REPO_DIR"